﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StyleMVVM.DependencyInjection.Impl
{
	/// <summary>
	/// Attributes that implement this interface will be used tp create an export strategy 
	/// </summary>
	public interface IExportStrategyProviderAttribute
	{
		/// <summary>
		/// Called during export discovery, it is used to provide an export strategy for a type that is attributed
		/// </summary>
		/// <param name="exportType"></param>
		/// <param name="attributes"></param>
		/// <returns></returns>
		IExportStrategy ProvideStrategy(Type exportType, IEnumerable<object> attributes);
	}
}
